package pe.com.casadesign.service.impl;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

import pe.com.casadesign.dao.MantenimientoDAO;
import pe.com.casadesign.domain.ListaMantenimiento;
import pe.com.casadesign.domain.Mantenimiento;
import pe.com.casadesign.domain.OperacionResultado;
import pe.com.casadesign.service.MantenimientoService;
import pe.com.casadesign.service.util.Constantes;

/**
 * Implementacion de MantenimientoService.
 * 
 * @author Pedro Vera
 * 
 */
@Service
public class MantenimientoServiceImpl implements MantenimientoService {
	private static final Logger logger = LoggerFactory.getLogger(MantenimientoServiceImpl.class);

    @Autowired
    private MantenimientoDAO mantenimientoDAO;
    
	@Override
	public ListaMantenimiento listarMantenimiento(Mantenimiento mantenimiento) {
		return mantenimientoDAO.listarMantenimiento(mantenimiento);
	}

	@Override
	public Mantenimiento obtenerMantenimiento(Mantenimiento mantenimiento) {
		return mantenimientoDAO.obtenerMantenimiento(mantenimiento);
	}

	@Override
	@Transactional (propagation=Propagation.REQUIRED, rollbackFor=Exception.class)
	public OperacionResultado registrarMantenimiento(Mantenimiento mantenimiento) {
		boolean resultado = mantenimientoDAO.registrarMantenimiento(mantenimiento);
		
		OperacionResultado operacionResultado = new OperacionResultado();
		operacionResultado.setCodigoGenerado(String.valueOf(mantenimiento.getCodMantenimiento()));
		operacionResultado.setEsOK(resultado?Constantes.SI:Constantes.NO);
		
		return operacionResultado;
	}

}
